/**
 * 
 */
package soa.security.mgr.service;

import java.util.List;
import java.util.Map;

import soa.security.domain.Person;
import soa.security.domain.Position;
import soa.security.exception.OrganizationException;
import soa.security.mgr.service.base.BaseMgrService;
import soa.security.ws.base.ModelAdapter;

/**
 * @author CreGu
 *
 */
public interface PositionMgrService extends BaseMgrService,
		ModelAdapter<Position> {

	void addPosition(String organizationId, Position a)
			throws OrganizationException;

	void updatePosition(String organizationId, Position a)
			throws OrganizationException;

	List<Position> allPositions(String organizationId)
			throws OrganizationException;

	List<Position> allPositions(String organizationId,
			Map<String, Object> parameters, boolean subTree) throws OrganizationException;

	List<Position> allPositions(List<Position> all, List<Position> allPositions);

	List<Position> getPosition(String organizationId, String positionId)
			throws OrganizationException;

	boolean addPersons(String organizationId, String positionId,
			String personIds) throws OrganizationException;

	boolean removePersons(String organizationId, String positionId,
			String personIds) throws OrganizationException;

	List<Person> allPersons(String organizationId, String positionId)
			throws OrganizationException;

	Position findByDn(String dn) throws OrganizationException;

	boolean deleteByDn(String dn) throws OrganizationException;

	void updatePosition4Mgr(String organizationId, Position model,
			String departmentIds, String personIds)
			throws OrganizationException;

	void addPosition4Mgr(String organizationId, Position model,
			String departmentDns, String personDns)
			throws OrganizationException;

	void remove(String organizationId, String dn);
}
